// photoAssessment.js
Page({
  data: {
    imageUrl: '', // 图片路径
    assessmentResult: '', // 评估结果
    isProcessing: false, // 是否正在处理
    isLoading: false, // 是否正在加载
    showResult: false, // 是否显示结果
    isPreview: false // 是否为预览模式
  },

  onLoad(options) {
    // 页面加载时的逻辑
    console.log('photoAssessment onLoad', options);
    
    // 如果有预览参数，设置预览模式
    if (options.preview) {
      this.setData({
        isPreview: true
      });
    }
  },

  onShow() {
    // 页面显示时检查登录状态
    const app = getApp();
    if (!app.globalData.isLoggedIn) {
      wx.navigateTo({
        url: '/pages/login/login'
      });
    }
  },

  // 拍照功能
  takePhoto() {
    // 播放点击动画
    this.playButtonTapAnimation('.camera-btn');
    
    wx.chooseMedia({
      count: 1,
      mediaType: ['image'],
      sourceType: ['camera'],
      camera: 'back',
      success: (res) => {
        console.log('拍照成功', res);
        
        // 图片选择成功动画
        this.playImageSelectionAnimation();
        
        this.setData({
          imageUrl: res.tempFiles[0].tempFilePath,
          assessmentResult: '',
          showResult: false
        });
      },
      fail: (err) => {
        console.error('拍照失败', err);
        if (err.errMsg !== 'chooseMedia:fail cancel') {
          wx.showToast({
            title: '拍照失败，请重试',
            icon: 'none'
          });
        }
      }
    });
  },

  // 从相册选择图片
  chooseFromAlbum() {
    // 播放点击动画
    this.playButtonTapAnimation('.album-btn');
    
    wx.chooseMedia({
      count: 1,
      mediaType: ['image'],
      sourceType: ['album'],
      success: (res) => {
        console.log('选择图片成功', res);
        
        // 图片选择成功动画
        this.playImageSelectionAnimation();
        
        this.setData({
          imageUrl: res.tempFiles[0].tempFilePath,
          assessmentResult: '',
          showResult: false
        });
      },
      fail: (err) => {
        console.error('选择图片失败', err);
        if (err.errMsg !== 'chooseMedia:fail cancel') {
          wx.showToast({
            title: '选择图片失败，请重试',
            icon: 'none'
          });
        }
      }
    });
  },

  // 移除已选择的图片
  removeImage() {
    wx.showModal({
      title: '确认删除',
      content: '确定要删除当前选择的图片吗？',
      success: (res) => {
        if (res.confirm) {
          this.setData({
            imageUrl: '',
            assessmentResult: '',
            showResult: false
          });
        }
      }
    });
  },

  // 提交评估
  submitAssessment() {
    // 检查是否有选择图片
    if (!this.data.imageUrl) {
      wx.showToast({
        title: '请先拍照或选择图片',
        icon: 'none'
      });
      return;
    }

    // 播放按钮点击动画
    this.playButtonTapAnimation('.submit-btn');

    // 设置处理状态
    this.setData({
      isProcessing: true,
      isLoading: true
    });

    // 模拟上传图片和分析结果的过程
    setTimeout(() => {
      // 模拟评估结果
      const assessmentResult = '根据您提供的照片，您的眼部状态良好，未发现明显异常。建议您继续保持良好的用眼习惯，定期进行眼部检查。如有不适，请及时就医。';

      this.setData({
        assessmentResult: assessmentResult,
        isProcessing: false,
        isLoading: false,
        showResult: true
      });

      // 结果显示动画
      this.playResultShowAnimation();

      // 显示成功提示
      wx.showModal({
        title: '评估完成',
        content: '您的眼部照片已分析完成，结果已显示。',
        showCancel: false
      });
    }, 3000);
  },

  // 重新评估
  startNewAssessment() {
    // 播放按钮点击动画
    this.playButtonTapAnimation('.new-assessment-btn');
    
    // 重置状态
    this.setData({
      imageUrl: '',
      assessmentResult: '',
      showResult: false
    });
  },

  // 跳转到首页
  goToHome() {
    wx.switchTab({
      url: '/pages/index/index'
    });
  },

  // 按钮点击动画
  playButtonTapAnimation(selector) {
    const query = wx.createSelectorQuery();
    query.select(selector).boundingClientRect();
    query.exec((res) => {
      if (res && res[0]) {
        // 创建动画实例
        const animation = wx.createAnimation({
          duration: 150,
          timingFunction: 'ease'
        });

        // 缩放动画
        animation.scale(0.95).step();
        animation.scale(1).step();

        // 应用动画
        this.setData({
          animationData: animation.export()
        });
      }
    });
  },

  // 图片选择成功动画
  playImageSelectionAnimation() {
    const query = wx.createSelectorQuery();
    query.select('.image-container').boundingClientRect();
    query.exec((res) => {
      if (res && res[0]) {
        // 创建动画实例
        const animation = wx.createAnimation({
          duration: 300,
          timingFunction: 'ease'
        });

        // 脉冲动画
        animation.scale(1.05).opacity(1).step();
        animation.scale(1).step();

        // 应用动画
        this.setData({
          imageAnimation: animation.export()
        });
      }
    });
  },

  // 结果显示动画
  playResultShowAnimation() {
    const query = wx.createSelectorQuery();
    query.select('.result-card').boundingClientRect();
    query.exec((res) => {
      if (res && res[0]) {
        // 创建动画实例
        const animation = wx.createAnimation({
          duration: 500,
          timingFunction: 'ease-out'
        });

        // 滑入和淡入动画
        animation.opacity(1).translateY(0).step();

        // 应用动画
        this.setData({
          resultAnimation: animation.export()
        });
      }
    });
  },

  // 页面滚动事件处理
  onPageScroll(e) {
    // 可以在这里添加滚动时的视觉效果
    const scrollTop = e.scrollTop;
    // 例如：导航栏透明度变化
    if (scrollTop > 50) {
      this.setData({
        navBarOpacity: 1
      });
    } else {
      this.setData({
        navBarOpacity: scrollTop / 50
      });
    }
  },

  // 用户下拉刷新
  onPullDownRefresh() {
    // 停止下拉刷新
    wx.stopPullDownRefresh();
  },

  // 生命周期函数：页面隐藏
  onHide() {
    // 页面隐藏时的处理
  },

  // 生命周期函数：页面卸载
  onUnload() {
    // 页面卸载时的处理
  }
});